package com.atguigu_c_trainstation_sync_method;

public class SellTicket implements Runnable{//任务的类
    //准备票
    static int ticket = 100; // 1. 加static  或者 2. 只创建一次SellTicket对象
    @Override
    public void run() {
        //表示火车站不关门
        while(true){

            sellTicket();

        }
    }


    //定义同步方法
    //同步方法的锁对象
    public static synchronized void sellTicket(){
        //判断票数是否大于 0
        if (ticket > 0){
            //为了让问题更加明显 , 在售票之前让线程休眠一下
            try {
                Thread.sleep(300); //线程放弃CPU的执行权
            } catch (InterruptedException e) {
                throw new RuntimeException(e);
            }

            //售票
            System.out.println(Thread.currentThread().getName() + " 正在卖第 " + ticket + "票 ! ");

            //真正售票语句
            ticket--;
        }
    }
}
